package com.citycloud.ccuap.tc.admin.projectdefaultfunction;

import com.citycloud.ccuap.commons.json.TreeNode;
import com.citycloud.ccuap.framework.service.mybatis.IMybatisService;
import com.citycloud.ccuap.tc.admin.entity.SysProjectDefaultFunction;

import java.util.List;

/**
 * 项目（站点）默认菜单业务处理接口
 * @author zhusr
 *
 */
public interface IProjectDefaultFunctionService extends IMybatisService<SysProjectDefaultFunction, String> {
	/**
	 * 查找父节点的下一层子节点树
	 * 
	 * @param pid 父节点
	 * @return 子节点树
	 */
	 List<TreeNode> findNextChildNodeTree(String pid);
	 
	 /**
	 * 单个删除节点及节点下的所有子节点
	 * 
	 * @param funId 删除的节点ID
	 */
	 void deleteNode(String funId);
	 
	 /**
	 * 批量删除节点及节点下的所有子节点
	 * 
	 * @param funIdList 删除的节点ID列表
	 */
	 void deleteNodeList(List<String> funIdList);

	/**
	 * 批量修改全路径
	 * @param funId
	 * @param existFullPath
	 * @param fullPath
	 */
	void updateFullPathBatch(String funId, String existFullPath, String fullPath);
	
	/**
	 * 获取所有子节点
	 * @param funId
	 */
	List<SysProjectDefaultFunction> getAllChildList(String funId);

	/**
	 * 获取所有子节点
	 * @param funName
	 * @return
	 */
	List<TreeNode> findNodeTreeByName(String funName);
}